package com.sky.service.impl;

import com.sky.entity.VisaProductTemplate;
import com.sky.mapper.VueVisaProductTemplateMapper;
import com.sky.service.VueVisaProductTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

@Service
@Slf4j
public class VueVisaProductTemplateServiceImpl implements VueVisaProductTemplateService {

    @Autowired
    private VueVisaProductTemplateMapper vueVisaProductTemplateMapper;

    @Override
    @Transactional
    public void saveProductTemplates(Long productId, List<Integer> templateIds) {
        // 1. 先删除该产品的所有现有模板关联
        vueVisaProductTemplateMapper.deleteByProductId(productId);

        // 2. 如果有新的模板ID，则批量插入新的关联关系
        if (templateIds != null && !templateIds.isEmpty()) {
            vueVisaProductTemplateMapper.insertBatch(productId, templateIds);
        }
    }

    @Override
    @Transactional
    public void deleteProductWithTemplates(Long productId) {
        // 删除产品的所有模板关联
        vueVisaProductTemplateMapper.deleteByProductId(productId);
        // 删除产品本身（假设有一个方法 deleteProductById）
        vueVisaProductTemplateMapper.deleteProductById(productId);
    }

    @Override
    public List<Map<String, Object>> getProductTemplates(Long productId) {
        return vueVisaProductTemplateMapper.getProductTemplates(productId);
    }
}